//package nm.aleksey.server;
//
//import nm.aleksey.domain.Book;
//
//import com.google.code.twig.ObjectDatastore;
//import com.google.code.twig.annotation.AnnotationObjectDatastore;
//import com.google.web.bindery.requestfactory.shared.Locator;
//
//public class BookLocator extends Locator<Book, Long> {
//  //
//  // @Inject
//  // public BookLocator(Provider<ObjectDatastore> datastore) {
//  // this.datastore = datastore;
//  // }
//
//  @Override
//  public Book create(Class<? extends Book> clazz) {
//    try {
//      return clazz.newInstance();
//    } catch (InstantiationException e) {
//      e.printStackTrace();
//    } catch (IllegalAccessException e) {
//      e.printStackTrace();
//    }
//    return null;
//  }
//
//  public void delete(Book book) {
//    try {
//      getDatastore().delete(book);
//    } catch (Exception e) {
//      e.printStackTrace();
//    }
//  }
//
//  private ObjectDatastore getDatastore() {
//    // TODO Auto-generated method stub
//    return new AnnotationObjectDatastore();
//  }
//
//  @Override
//  public Book find(Class<? extends Book> clazz, Long id) {
//    if (id == null) {
//      return null;
//    }
//    try {
//      Book book = getDatastore().load(Book.class, id);
//      return book;
//    } catch (Exception e) {
//      e.printStackTrace();
//      return null;
//    }
//  }
//
//  public Book find(Long id) {
//    return find(Book.class, id);
//  }
//
//  @Override
//  public Class<Book> getDomainType() {
//    return Book.class;
//  }
//
//  @Override
//  public Long getId(Book domainObject) {
//    return domainObject.getId();
//  }
//
//  @Override
//  public Class<Long> getIdType() {
//    return Long.class;
//  }
//
//  @Override
//  public Object getVersion(Book domainObject) {
//    return domainObject.getVersion();
//  }
//
//  public void store(Book book) {
//    try {
//      getDatastore().store().instance(book).now();
//    } catch (Exception e) {
//      e.printStackTrace();
//    }
//  }
//
//  public void update(Book book) {
//    try {
//      getDatastore().update(book);
//    } catch (Exception e) {
//      e.printStackTrace();
//    }
//  }
//}
